An instant messaging (“IM”) system generally includes a plurality of IM client devices coupled to an IM server or servers of a data network. IM client devices typically provide the ability to track and display the presence status of other users connected to the IM server of the data network. Presence information about other users is organized into contact lists or buddy lists. Each entry in the contact list corresponds to a user of the IM system, or more specifically the user's IM client device, and includes presence information associated with each entry. Users of IM client devices desire up-to-date presence information about the members of their contact list. At a minimum, an IM client device and its associated IM server track whether another device identified by the contact list is the online (e.g., available to communicate) or off-line (e.g., unavailable). Accurate presence information is clearly of value to users, especially when exchanging time-sensitive information.
An IM server is commonly used to update presence information about members of a contact list or buddy list. Unfortunately, such connections between the IM client devices and the associated IM server places significant traffic load on the data network, particularly for a wireless data network. Typically a user's IM client device communicates with the IM server using one-to-one reliable transport mechanism, such as a TCP/IP system. As a result, the aggregate level of system traffic for presence updates is directly proportional to the number of users in the system. This direct scaling relationship is a burden on wireless systems with generally constrained capacity.
Accordingly, there is a need for more efficient mechanisms to distribute presence information to users and their IM client devices. More particularly, there is a need for an instant messaging system that provides updated presence information about members of a contact list or buddy list while minimizing traffic load on a wireless network.